home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / netutils / nbdriv.arj / SHOWDDH.C < prev    next >
Text File  |  1993-10-26  |  1KB  |  61 lines

  1. #include <dos.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <compat.h>
  5.  
  6. struct DDH_struct
  7.     {
  8.     struct    DDH_struct    far *next_DDH;
  9.     unsigned    int        ddh_attribute;
  10.     unsigned    int        ddh_strategy;
  11.     unsigned    int        ddh_interrupt;
  12.     unsigned    char        ddh_name[8];
  13.     };
  14.  
  15. struct DOS_struct
  16.     {
  17.     unsigned    char        reserved[34];
  18.     struct    DDH_struct    far *ddh_ptr;
  19.     };
  20.  
  21. void main(void);
  22. void PrintDDH(struct DDH_struct far *);
  23.  
  24. void PrintDDH(struct DDH_struct far *ddh_ptr)
  25.     {
  26.     struct DDH_struct far *z;
  27.     unsigned int i;
  28.  
  29.     z = ddh_ptr;
  30.     printf("Entry      Next       Attr  Strat Intr  Name\n");
  31.     printf("--------------------------------------------\n");
  32.     while (FP_OFF(z) != 0xffff)
  33.     {
  34.     printf("%Fp  %Fp  %04x  %04x  %04x  ",z,z->next_DDH,z->ddh_attribute,
  35.                 z->ddh_strategy,z->ddh_interrupt);
  36.     for (i=0; i < 8; i++)
  37.         {
  38.         if (z->ddh_name[i] > 0x1f)
  39.         {
  40.         putchar(z->ddh_name[i]);
  41.         }
  42.         }
  43.     putchar(13);
  44.     putchar(10);
  45.     z=z->next_DDH;
  46.     }
  47.     }
  48.  
  49. void main()
  50.     {
  51.     struct DOS_struct far *dos_ptr;
  52.     union REGS in_regs, out_regs;
  53.     struct SREGS seg_regs;
  54.  
  55.     segread(&seg_regs);
  56.     in_regs.x.ax = 0x5200;
  57.     int86x(0x21,&in_regs,&out_regs,&seg_regs);
  58.     dos_ptr = MK_FP(seg_regs.es,out_regs.x.bx);
  59.     PrintDDH((struct DDH_struct far *)dos_ptr->ddh_ptr);
  60.     }
  61.